<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //【Map对象】
        // Map对象用来保存键值对。
        // 在Map对象中任何值(对象或者原始值)都可以作为一个键(任何数据类型)或一个值。

        // 【基本Map方法】
        // new Map():创建新的Map对象。
        // set():为Map对象中的键设置值。
        // get():获取Map对象中键的值。
        // keys():返回Map对象中键的数组。
        // values():返回Map对象中值的数组。
        // entries():返回Map对象中键/值对的数组。

        // 【Map()属性】
        // Map.size:返回Map中元素的数量。

        //【示例】
        // 创建对象
        const apples = {name:'Apples'}; 
        const bananas ={name:'Bananas'}; 
        const oranges = {name:'0ranges'};
        // 创建新的Map对象(new Map()) 
        const fruits = new Map();
        // 向Map对象添加成员(set()) 
        fruits.set(apples,500); 
        fruits.set(bananas,200); 
        fruits.set(oranges,200);

        // 获取Map对象中键中的值(get())
        console.log(fruits.get(apples)); //500

        // 获取Map对象中键的数组(keys())
        console.log(fruits.keys()); //{{.….}，{….}，{.…}}

        // 获取Map对象中值的数组(values())
        console.log(fruits.values()); //{500，200，200}

        // 获取Map对象中键/值对的数组(entries())
        console.log(fruits.entries()) //{{….} => 500，{…}=> 200，{..} => 200}

        // 返回Map中元素的数量(Map.size) 
        console.log(fruits.size)

        //// 【其他Map()方法】
         // has():如果键存在,则返回true。
        console.log(fruits.has('apples'));//false
        console.log(fruits.has(apples,500));//true
        
        // delete():删除由键指定的元素。
        console.log(fruits.delete(apples,500));//true
        console.log(fruits.has(apples,500));//false
       
        // clear():删除Map中的所有元素。
        fruits.clear()
        console.log(fruits.size);//0
        console.log(fruits.has(oranges,200));//false
    </script>
</body>
</html>